Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-FIN-003 |
| Deskripsi | Pencatatan transaksi kas dan bank harian: pemasukan, pengeluaran, pemasukan dan pengeluaran sekaligus, serta reimbursement, termasuk lampiran, cetak bukti, dan pemindahan pengeluaran menjadi pembelian |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User melihat daftar transaksi kas bank (tanggal, nomor invoice, akun kas/bank, status invoice, nominal masuk, nominal keluar) beserta ringkasan uang diterima dan dikeluarkan dalam 30 hari terakhir.
- User memfilter daftar berdasarkan tanggal invoice, akun kas/bank, nominal, gudang / cabang / kandang, klaster, biaya, mode, status invoice, dan keterangan nota, lalu mengekspor ke Excel.
- User mencatat empat jenis transaksi: pemasukan, pengeluaran, pemasukan dan pengeluaran sekaligus, serta reimbursement.
- Setiap transaksi memuat tanggal, lokasi, kandang / gudang / cabang, akun kas/bank, klaster, mata uang asing (opsional), baris akun lawan dengan biaya / keterangan dan nominal, keterangan nota, serta lampiran.
- Pilihan akun lawan dibatasi oleh konfigurasi hak akses akun (pendapatan, pengeluaran, hutang, biaya dibayar di muka, dan sejenisnya).
- User menyimpan sebagai draft atau final, mengubah dan menghapus draft, mengubah final kembali ke draft, mencetak bukti, memposting ulang, menambah lampiran pada invoice final, dan memindahkan baris pengeluaran menjadi invoice pembelian.
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar transaksi kas bank dengan mode Harian, Pemasukan, Pengeluaran, dan Reimburse |
| FR-02 | Sistem menampilkan ringkasan total uang masuk dan keluar dari transaksi final 30 hari terakhir |
| FR-03 | User dapat memfilter daftar dan mengekspornya ke Excel |
| FR-04 | User dapat mencatat transaksi pemasukan kas/bank dengan banyak baris akun lawan |
| FR-05 | User dapat mencatat transaksi pengeluaran kas/bank dengan banyak baris akun lawan |
| FR-06 | User dapat mencatat pemasukan dan pengeluaran dalam satu transaksi |
| FR-07 | User dapat mencatat reimbursement dengan tanggal bayar per baris |
| FR-08 | User dapat melampirkan file pada transaksi |
| FR-09 | User dapat menyimpan transaksi sebagai draft atau final |
| FR-10 | User dapat mengubah dan menghapus transaksi draft |
| FR-11 | User dengan hak draft dapat mengubah transaksi final kembali ke draft |
| FR-12 | User dapat mencetak bukti kas bank dan memposting ulang jurnal |
| FR-13 | User dapat menambah lampiran pada transaksi final |
| FR-14 | User dapat memindahkan baris pengeluaran transaksi final menjadi invoice pembelian |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat daftar dan ringkasan kas bank |
| UC-02 | Memfilter dan mengekspor daftar kas bank |
| UC-03 | Mencatat pemasukan kas/bank |
| UC-04 | Mencatat pengeluaran kas/bank |
| UC-05 | Mencatat pemasukan dan pengeluaran sekaligus |
| UC-06 | Mencatat reimbursement |
| UC-07 | Mengubah transaksi kas bank draft |
| UC-08 | Membuka kembali (unlock) transaksi kas bank final ke draft |
| UC-09 | Menghapus transaksi kas bank draft |
| UC-10 | Mencetak bukti kas bank |
| UC-11 | Memposting ulang jurnal kas bank |
| UC-12 | Menambah lampiran pada transaksi final |
| UC-13 | Memindahkan pengeluaran kas bank menjadi pembelian |
4. Use Case Scenario
UC-01 : Melihat daftar dan ringkasan kas bank
| Aktor | User keuangan |
| Deskripsi | User melihat daftar transaksi kas bank dan ringkasan 30 hari terakhir |
| Prekondisi | User sudah login dan memiliki akses menu Kas Bank |
| Alur utama | 1. User membuka menu Keuangan, Kas Bank. 2. Sistem menampilkan ringkasan total uang diterima dan dikeluarkan 30 hari terakhir. 3. Sistem menampilkan daftar transaksi dengan infinite scroll. 4. User membuka detail transaksi. |
| Alur negatif | - Jika gagal memuat, sistem menampilkan keadaan kosong / alert error. |
| Bisnis rule | - Ringkasan hanya menghitung transaksi final. - Tanpa hak lihat semua user, daftar hanya memuat transaksi buatan user sendiri. - Daftar memuat mode Harian, Pengeluaran, Pemasukan, dan Reimburse (Transfer Uang tidak termasuk). |
| Postkondisi | Ringkasan dan daftar tampil |
| Trigger | User membuka halaman Kas Bank |
| Kode FR | FR-01 FR-02 |
UC-02 : Memfilter dan mengekspor daftar kas bank
| Aktor | User keuangan |
| Deskripsi | User mempersempit daftar transaksi dan mengunduhnya |
| Prekondisi | User berada di daftar Kas Bank |
| Alur utama | 1. User mengisi filter tanggal invoice, akun kas/bank, nominal, gudang / cabang / kandang, klaster, biaya, mode, status invoice, atau keterangan nota. 2. Sistem memuat ulang daftar. 3. User menekan export dan sistem mengunduh file Excel. |
| Alur negatif | - Jika hasil export kosong, file tidak dibuat. - Filter nominal baru dikirim jika minimal 3 karakter. |
| Bisnis rule | - Mode: Pemasukan, Pengeluaran, Reimburse. - Status invoice: draft / selesai. |
| Postkondisi | Daftar terfilter tampil atau file Excel terunduh |
| Trigger | User mengubah filter atau menekan export |
| Kode FR | FR-03 |
UC-03 : Mencatat pemasukan kas/bank
| Aktor | User keuangan |
| Deskripsi | User mencatat uang masuk ke akun kas/bank |
| Prekondisi | User memiliki hak kolom masuk kas bank |
| Alur utama | 1. User memilih Buat Tindakan, Pemasukan. 2. User mengisi tanggal, lokasi, kandang / gudang / cabang, akun kas/bank, klaster, dan mata uang (opsional). 3. User mengisi baris pemasukan: biaya / keterangan, akun lawan, dan nominal masuk. 4. User mengisi keterangan nota dan lampiran (opsional). 5. User menyimpan sebagai draft atau final. 6. Sistem menyimpan transaksi lalu mengunggah lampiran. |
| Alur negatif | - Jika menambah baris sebelum memilih akun kas, muncul "Silahkan pilih akun Kas terlebih dahulu!". - Jika form wajib belum lengkap, muncul "Tolong lengkapi form dengan benar!". - Jika akun lawan sama dengan akun kas/bank, muncul "Anda tidak boleh memasukkan lawan rekening yang sama!". - Jika baris bernominal tanpa akun lawan, muncul "Silahkan cek kembali Kategori Akun Anda!". - Jika tidak ada baris sama sekali, muncul "Tolong Isi Data Dengan Benar". - Jika lampiran terlalu besar, transaksi yang baru dibuat dihapus kembali. |
| Bisnis rule | - Hanya baris dengan nominal lebih dari 0 yang dikirim. - Kolom keluar dinonaktifkan pada mode pemasukan. - Akun lawan dibatasi hak akses kelompok rekening. |
| Postkondisi | Transaksi pemasukan tersimpan (mode Pemasukan) |
| Trigger | User memilih Pemasukan |
| Kode FR | FR-04 FR-08 FR-09 |
UC-04 : Mencatat pengeluaran kas/bank
| Aktor | User keuangan |
| Deskripsi | User mencatat uang keluar dari akun kas/bank |
| Prekondisi | User memiliki hak kolom keluar kas bank |
| Alur utama | 1. User memilih Buat Tindakan, Pengeluaran. 2. User mengisi informasi transaksi seperti pada pemasukan. 3. User mengisi baris pengeluaran: biaya / keterangan, akun lawan, dan nominal keluar. 4. User menyimpan sebagai draft atau final. |
| Alur negatif | - Validasi sama dengan UC-03 (akun kas wajib, akun lawan tidak boleh sama, kategori akun wajib). - Jika server menolak, muncul alert error. |
| Bisnis rule | - Kolom masuk dinonaktifkan pada mode pengeluaran. - Baris biaya dari master biaya mengirim id biaya. |
| Postkondisi | Transaksi pengeluaran tersimpan (mode Pengeluaran) |
| Trigger | User memilih Pengeluaran |
| Kode FR | FR-05 FR-09 |
UC-05 : Mencatat pemasukan dan pengeluaran sekaligus
| Aktor | User keuangan |
| Deskripsi | User mencatat uang masuk dan keluar dalam satu transaksi |
| Prekondisi | User memiliki hak kolom masuk dan kolom keluar kas bank |
| Alur utama | 1. User memilih Buat Tindakan, Pemasukan dan Pengeluaran. 2. User mengisi informasi transaksi. 3. Setiap baris diisi nominal masuk atau keluar. 4. User menyimpan sebagai draft atau final. |
| Alur negatif | - Validasi sama dengan UC-03. - Jika user tidak punya hak masuk dan keluar, menu ini tidak muncul. |
| Bisnis rule | - Transaksi gabungan disimpan dengan mode Harian. - Satu baris hanya boleh terisi masuk atau keluar. |
| Postkondisi | Transaksi gabungan tersimpan |
| Trigger | User memilih Pemasukan dan Pengeluaran |
| Kode FR | FR-06 FR-09 |
UC-06 : Mencatat reimbursement
| Aktor | User keuangan |
| Deskripsi | User mencatat penggantian biaya yang dibayarkan dari kas/bank |
| Prekondisi | User memiliki akses Kas Bank |
| Alur utama | 1. User memilih Buat Tindakan, Reimburse. 2. User mengisi tanggal bayar, kandang / gudang / cabang, lokasi, akun kas/bank, dan klaster. 3. User mengisi baris pengeluaran dengan tanggal per baris dan nominal keluar. 4. User mengisi kolom reimburse dibuat oleh. 5. User menyimpan sebagai draft atau final. |
| Alur negatif | - Validasi sama dengan UC-03. - Jika server menolak, muncul alert error. |
| Bisnis rule | - Mode tersimpan Reimburse. - Setiap baris reimbursement membawa tanggalnya sendiri. - Label keterangan nota berubah menjadi "reimburse dibuat oleh". |
| Postkondisi | Transaksi reimbursement tersimpan |
| Trigger | User memilih Reimburse |
| Kode FR | FR-07 FR-09 |
UC-07 : Mengubah transaksi kas bank draft
| Aktor | User keuangan |
| Deskripsi | User memperbaiki transaksi kas bank yang masih draft |
| Prekondisi | Transaksi berstatus draft dan user memiliki hak dasar |
| Alur utama | 1. User memilih Edit. 2. Sistem memuat detail transaksi. 3. User mengubah informasi, baris, atau lampiran. 4. User menyimpan sebagai draft atau final. 5. Sistem menyimpan perubahan, menghapus lampiran lama yang dibuang, lalu mengunggah lampiran baru. |
| Alur negatif | - Jika user dibatasi transaksi hari ini dan tanggal invoice bukan hari ini, muncul "Anda tidak bisa merubah Invoice Kas Bank yang tidak sama dengan hari ini!". - Validasi baris sama dengan UC-03. |
| Bisnis rule | - Pembatasan transaksi hari ini tidak berlaku untuk admin brand. - Baris lama yang dihapus dikirim dengan penanda terhapus. |
| Postkondisi | Transaksi draft terbarui atau menjadi final |
| Trigger | User memilih Edit |
| Kode FR | FR-10 |
UC-08 : Membuka kembali (unlock) transaksi kas bank final ke draft
| Aktor | User keuangan dengan hak draft |
| Deskripsi | User mengembalikan transaksi final menjadi draft |
| Prekondisi | Transaksi berstatus final |
| Alur utama | 1. User memilih Ubah ke Simpan Draft. 2. Sistem membuka kunci transaksi. 3. Sistem menampilkan "Berhasil Ubah ke Simpan Draft Invoice NOMOR". |
| Alur negatif | - Jika user tidak punya hak, menu tidak muncul. - Jika server menolak, muncul notifikasi error. |
| Bisnis rule | - Butuh hak global boleh draft dan hak draft Kas Bank. |
| Postkondisi | Transaksi kembali berstatus draft |
| Trigger | User memilih Ubah ke Simpan Draft |
| Kode FR | FR-11 |
UC-09 : Menghapus transaksi kas bank draft
| Aktor | User keuangan dengan hak draft |
| Deskripsi | User menghapus transaksi kas bank yang masih draft |
| Prekondisi | Transaksi berstatus draft |
| Alur utama | 1. User memilih Hapus. 2. Sistem menampilkan konfirmasi "Anda yakin ingin menghapus NOMOR?". 3. Sistem menghapus transaksi dan menampilkan "Berhasil hapus Transaksi Kas Bank". |
| Alur negatif | - Jika user membatalkan konfirmasi, data tidak dihapus. - Jika server menolak, muncul alert error. |
| Bisnis rule | - Menu Hapus hanya untuk draft dan butuh hak draft. |
| Postkondisi | Transaksi terhapus |
| Trigger | User memilih Hapus |
| Kode FR | FR-10 |
UC-10 : Mencetak bukti kas bank
| Aktor | User keuangan |
| Deskripsi | User mencetak bukti transaksi kas bank final |
| Prekondisi | Transaksi berstatus final |
| Alur utama | 1. User memilih Cetak Invoice. 2. Sistem menandai transaksi tercetak dan memuat detail siap cetak. 3. Sistem mencetak dengan format default brand atau menampilkan pilihan ukuran kertas. |
| Alur negatif | - Jika penandaan cetak gagal, muncul notifikasi error. - Cetak ulang dibatasi riwayat cetak dan hak reprint. |
| Bisnis rule | - Format cetak mengikuti konfigurasi default print transaksi brand. |
| Postkondisi | Bukti kas bank tercetak |
| Trigger | User memilih Cetak Invoice |
| Kode FR | FR-12 |
UC-11 : Memposting ulang jurnal kas bank
| Aktor | User keuangan |
| Deskripsi | User memicu ulang pembentukan jurnal transaksi final |
| Prekondisi | Transaksi berstatus final |
| Alur utama | 1. User memilih Posting Ulang. 2. Sistem memproses ulang jurnal. 3. Sistem menampilkan "Berhasil Sync Invoice NOMOR" dan memuat ulang daftar. |
| Alur negatif | - Jika server menolak, muncul notifikasi error. |
| Bisnis rule | - Hanya untuk transaksi final. |
| Postkondisi | Jurnal transaksi terbentuk ulang |
| Trigger | User memilih Posting Ulang |
| Kode FR | FR-12 |
UC-12 : Menambah lampiran pada transaksi final
| Aktor | User keuangan dengan hak lampiran kas bank |
| Deskripsi | User melampirkan file pada transaksi yang sudah final |
| Prekondisi | Transaksi final dan user memiliki hak lampiran kas bank |
| Alur utama | 1. User memilih Tambah Lampiran. 2. User memilih file. 3. Sistem mengunggah lampiran dan menampilkan "Berhasil Tambah Lampiran". |
| Alur negatif | - Jika unggah gagal, muncul notifikasi error. |
| Bisnis rule | - Menu hanya untuk transaksi final dengan hak lampiran kas bank. |
| Postkondisi | Lampiran tersimpan pada transaksi |
| Trigger | User memilih Tambah Lampiran |
| Kode FR | FR-13 |
UC-13 : Memindahkan pengeluaran kas bank menjadi pembelian
| Aktor | User keuangan |
| Deskripsi | User mengubah baris pengeluaran transaksi final menjadi invoice pembelian |
| Prekondisi | Transaksi final yang memiliki baris pengeluaran |
| Alur utama | 1. User memilih Pindah ke Pembelian. 2. Sistem memuat detail transaksi dan menampilkan baris pengeluaran. 3. User memilih supplier, opsi PPN, nomor invoice (opsional), dan baris pengeluaran. 4. Sistem memindahkan baris terpilih menjadi invoice pembelian. 5. Sistem menampilkan "Berhasil memindahkan data kasbank ke pembelian". |
| Alur negatif | - Jika tidak ada baris dipilih, muncul "Tidak ada cashflow keluar untuk dipindahkan". - Jika server menolak, muncul notifikasi error. |
| Bisnis rule | - Hanya baris pengeluaran (cashflow keluar) yang dapat dipindahkan. |
| Postkondisi | Invoice pembelian terbentuk dari pengeluaran kas bank |
| Trigger | User memilih Pindah ke Pembelian |
| Kode FR | FR-14 |
5. Data Flow Diagram
DFD-01 — Alur data kas bank
6. Sequence Diagram
SD-01 — UC-01 : Melihat daftar dan ringkasan kas bank
SD-02 — UC-02 : Memfilter dan mengekspor daftar kas bank
SD-03 — UC-03 : Mencatat pemasukan kas/bank
SD-04 — UC-04 : Mencatat pengeluaran kas/bank
SD-05 — UC-05 : Mencatat pemasukan dan pengeluaran sekaligus
SD-06 — UC-06 : Mencatat reimbursement
SD-07 — UC-07 : Mengubah transaksi kas bank draft
SD-08 — UC-08 : Membuka kembali (unlock) transaksi kas bank final ke draft
SD-09 — UC-09 : Menghapus transaksi kas bank draft
SD-10 — UC-10 : Mencetak bukti kas bank
SD-11 — UC-11 : Memposting ulang jurnal kas bank
SD-12 — UC-12 : Menambah lampiran pada transaksi final
SD-13 — UC-13 : Memindahkan pengeluaran kas bank menjadi pembelian
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /invoice-kasbank-harian | existing | - |
GET /invoice-kasbank-harian/:id | existing | - |
POST /invoice-kasbank-harian | existing | - |
PUT /invoice-kasbank-harian/:id | existing | - |
PUT /invoice-kasbank-harian/invoice-only/:id | existing | - |
PUT /invoice-kasbank-harian/unlock/:id | existing | - |
DELETE /invoice-kasbank-harian/:id | existing | - |
POST /invoice-kasbank-harian/sync/ | existing | - |
POST /invoice-kasbank-harian/invoice-cashflow/picture | existing | - |
POST /invoice-kasbank-harian/invoice-cashflow/delete/picture/:id | existing | - |
POST /invoice-pembelian/cashflow-to-pembelian/ | existing | - |
POST /financial-report/invoice-cashflow-report | existing | - |
GET /rekening | existing | - |